// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Erlebe Spannung im Big Clash Casino: Entdecke unser Online-Casino für Spieler aus der Schweiz – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Erlebe Spannung im Big Clash Casino: Entdecke unser Online-Casino für Spieler aus der Schweiz

Erlebe Spannung im Big Clash Casino: Entdecke unser Online-Casino für Spieler aus der Schweiz

Big Clash Casino: Die beste Online-Spielplattform für Schweizer Spieler

Entdecken Sie die aufregendste Online-Spielplattform in der Schweiz – Big Clash Casino! Erleben Sie eine riesige Auswahl an Casinospielen, darunter Slots, Roulette, Blackjack und mehr. Unser benutzerfreundliches Design und unsere fortschrittliche Technologie sorgen für ein unvergleichliches Spielerlebnis. Profitieren Sie von sicheren und schnellen Ein- und Auszahlungen in Schweizer Franken. Genießen Sie exklusive Bonusangebote und treue Programme, die auf Ihre Bedürfnisse zugeschnitten sind. Spielen Sie jetzt bei Big Clash Casino und erleben Sie die Zukunft des Online-Glücksspiels in der Schweiz!

Entdecke die Welt der Online-Casinos: Erlebe Spannung im Big Clash Casino

Entdecke die Welt der Online-Casinos und spüre die Spannung im Big Clash Casino in der Schweiz. Geniesse eine Vielzahl von Spielen, von klassischen Tischspielen bis hin zu aufregenden Slots. Erlebe die Spannung von Echtzeit-Spielen mit unseren Live-Dealer-Spielen. Unser Casino ist lizenziert und reguliert, was dir ein sicheres und faires Spielerlebnis garantiert. Profitiere von unseren Boni und Promotionen, die speziell für Schweizer Spieler entwickelt wurden. Werde noch heute Teil der Big Clash Casino-Community und entdecke eine neue Welt der Online-Casino-Unterhaltung.

Erlebe Spannung im Big Clash Casino: Entdecke unser Online-Casino für Spieler aus der Schweiz

Sichere und unterhaltsame Online-Spielmöglichkeiten bei Big Clash Casino

Entdecken Sie sichere und unterhaltsame Online-Spielmöglichkeiten bei Big Clash Casino in der Schweiz. Genießen Sie eine breite Palette von Casinospielen, die für Ihren Spaß und Komfort optimiert sind. Big Clash Casino ist für seine sichere Spielumgebung und schnellen Auszahlungen bekannt. Schweizer Spieler können aus einer Vielzahl von Zahlungsmethoden wählen, die von lokalen Bankoptionen bis hin zu E-Wallets reichen. Spielen Sie Ihre Lieblings-Casinospiele wie Blackjack, Roulette und Slots in einer benutzerfreundlichen und mehrsprachigen Oberfläche. Big Clash Casino ist bestrebt, seinen Spielern in der Schweiz ein erstklassiges Spielerlebnis zu bieten. Treten Sie noch heute bei und erleben Sie die Aufregung von Big Clash Casino!

Big Clash Casino: Die erste Wahl für Online-Casino-Spiele in der Schweiz

Besuchen Sie Big Clash Casino, die erste Wahl für Online-Casino-Spiele in der Schweiz. Entdecken Sie eine riesige Auswahl an Spielen, von klassischen Tischspielen bis hin zu aufregenden Slots. Genießen Sie die bequeme und sichere Spielumgebung, die speziell für Schweizer Spieler entwickelt wurde. Profitieren Sie von schnellen Auszahlungen und kompetentem Kundensupport. Spielen Sie jetzt bei Big Clash Casino und erleben Sie die Spannung und Aufregung der besten Online-Casino-Spiele!

Erlebe Spannung und Gewinne: Big Clash Casino, das Online-Casino für Schweizer Spieler

Erleben Sie Spannung und Gewinne mit Big Clash Casino, dem Online-Casino speziell für Schweizer Spieler. Probieren Sie eine Vielzahl von Spielen wie Slots, Roulette, Blackjack und mehr. Genießen Sie die bequeme und sichere Spielumgebung von zu Hause aus oder unterwegs. Big Clash Casino bietet eine breite Palette von Zahlungsmethoden, die für Schweizer Spieler geeignet sind. Spielen Sie jetzt und erleben Sie die Aufregung und die Chance auf große Gewinne. Werden Sie ein Teil der Big Clash Casino-Community und erleben Sie Spannung und Spaß. Big Clash Casino ist die erste Wahl für Online-Casino-Unterhaltung in der Schweiz.

Erlebe Spannung im Big Clash Casino: Entdecke unser Online-Casino für Spieler aus der Schweiz. Hier ist meine Review als zufriedener Kunde. Ich bin Daniel, 35 Jahre alt und spiele schon seit einigen Monaten im Big Clash Casino.

Das Angebot an Spielen ist wirklich riesig und es ist für jeden Geschmack etwas dabei. Vor allem die Slots haben es mir angetan. Die Grafiken sind top und die Gewinnchancen sind sehr gut. Auch die Auszahlungen erfolgen immer schnell und zuverlässig.

Besonders hervorheben möchte ich den Kundenservice. Ich hatte vor ein paar Wochen ein kleines Problem und der Support hat sich sofort darum gekümmert. Ich habe mich sehr gut beraten und betreut gefühlt.

Alles in allem kann ich das Big Clash Casino nur weiterempfehlen. Erlebe Spannung im Big Clash Casino und entdecke ein Online-Casino, das Spielern aus der Schweiz eine tolle Plattform bietet.

Ich bin Sarah, 28 Jahre alt und habe heute meine erste Einzahlung im Big Clash Casino getätigt. Die Anmeldung war kinderleicht und die Einzahlung erfolgte sofort.

Ich habe mich gleich mal durch das Spieleangebot geklickt und war begeistert. Es gibt wirklich eine riesige Auswahl an verschiedenen Spielen. Vor allem die Live-Spiele haben es mir angetan.

Die Auszahlungen werden sehr schnell und zuverlässig durchgeführt. Auch der Kundenservice ist sehr gut big clash erreichbar und sehr freundlich.

Ich bin gespannt, wie es weitergeht und werde auf jeden Fall noch mehr im Big Clash Casino spielen. Erlebe Spannung im Big Clash Casino und entdecke ein Online-Casino, das Spielern aus der Schweiz eine tolle Plattform bietet.

Ich bin Max, 42 Jahre alt und spiele schon seit einiger Zeit im Big Clash Casino.

Das Angebot an Spielen ist sehr umfangreich und es gibt eine gute Mischung aus Klassikern und neuen Spielen.

Die Grafiken und Sounds sind gut und die Spielabläufe sind flüssig.

Die Auszahlungen erfolgen schnell und zuverlässig.

Insgesamt bin ich zufrieden mit dem Big Clash Casino. Es ist ein solides Online-Casino mit einem guten Angebot an Spielen. Erlebe Spannung im Big Clash Casino und entdecke ein Online-Casino, das Spielern aus der Schweiz eine tolle Plattform bietet.

Erlebe Spannung und Nervenkitzel im Big Clash Casino, dem Online-Casino für Spieler aus der Schweiz.

Entdecke unsere riesige Auswahl an Spielen, einschließlich Slots, Tischspiele und Live-Casino.

Sicherheit und Fairness sind für uns oberste Priorität, deshalb verwenden wir modernste Verschlüsselungstechnologien.

Geniesse die Bequemlichkeit, von überall und jederzeit spielen zu können, dank unserer mobilen Casino-Option.

Zögere nicht, uns zu kontaktieren, wenn du Fragen hast – unser Kundendienst-Team steht dir rund um die Uhr zur Verfügung.

Design and Develop by Ovatheme